CREATE TABLE [dbo].[TMOPRC_CNTB]
(
[CO_EMPR] [dbo].[TD_VC_002] NOT NULL,
[CO_OPRC_CNTB] [dbo].[TD_VC_003] NOT NULL,
[DE_OPRC] [dbo].[TD_VC_050] NOT NULL,
[ST_MODI_FLAG] [dbo].[TD_VC_001_SINO] NOT NULL CONSTRAINT [DF__TMOPRC_CN__ST_MO__3587F3E0] DEFAULT ('N'),
[TI_SITU] [dbo].[TD_VC_003] NOT NULL CONSTRAINT [DF__TMOPRC_CN__TI_SI__37703C52] DEFAULT ('ACT'),
[ST_OTRS] [dbo].[TD_VC_020] NULL,
[CO_USUA_CREA] [dbo].[TD_VC_008_USUA] NOT NULL,
[FE_USUA_CREA] [dbo].[TD_DT_001_SIST] NOT NULL CONSTRAINT [DF__TMOPRC_CN__FE_US__3864608B] DEFAULT (getdate()),
[CO_USUA_MODI] [dbo].[TD_VC_008_USUA] NOT NULL,
[FE_USUA_MODI] [dbo].[TD_DT_001_SIST] NOT NULL CONSTRAINT [DF__TMOPRC_CN__FE_US__395884C4] DEFAULT (getdate())
) ON [PRIMARY]
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE Trigger [dbo].[tD_TMOPRC_CNTB_D01] on [dbo].[TMOPRC_CNTB] 
for DELETE as
/*------------------------------------------------------*/
/*---- Empresa           : OFISIS S.A.              ----*/
/*---- Cliente           : OFISIS S.A.              ----*/
/*---- Sistema           : OFICONT                  ----*/
/*---- M›dulo            : Administraci›n           ----*/
/*---- Programa          : Trigger Operaciones      ----*/
/*---- Script            : TRIGGER.SQL              ----*/
/*---- Nombre SP         : tD_TMOPRC_CNTB_D01       ----*/
/*---- Desarrollado por  : Franco Gamboni Koifman   ----*/
/*---- Fecha Creaci›n    : 24/05/2004               ----*/
/*---- Base de Datos     : Microsoft Sql Server     ----*/
/*---- Versi›n           : 8.0                      ----*/
/*---- Invoca a SP       :                          ----*/
/*------------------------------------------------------*/
/*---- Modificado 1 por     :                       ----*/
/*---- Fecha Modificaci›n   :                       ----*/    
/*---- Detalle Modificacicn :                       ----*/  
/*------------------------------------------------------*/
/*---- Comentarios: Valida cuando se Elimina        ----*/
/*----              TMOPRC_CNTB en TESO,VENT y PLAN ----*/
/*------------------------------------------------------*/

Begin

  declare  @errno   int,
           @errmsg  varchar(255)

/***************  SISTEMA OFIVENT *******************/

    if exists (
      select * from deleted t1, OFIVENT..TMPARA_VECO t2
      where
        t2.CO_EMPR = t1.CO_EMPR AND
        t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB
    )
    begin
      select @errno  = 30001,
             @errmsg = 'No Se puede Borrar CODIGO OPERACION porque EXISTE EN OFIVENT.TMPARA_VECO.'
      goto error
    end

/***************  SISTEMA OFILOGI *******************/

    if exists (
      select * from deleted t1, OFILOGI..TTTIOP_LOGI t2
      where
        t2.CO_EMPR = t1.CO_EMPR AND
        t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB
    )
    begin
      select @errno  = 30001,
             @errmsg = 'No Se puede Borrar CODIGO OPERACION porque EXISTE EN OFILOGI.TTTIOP_LOGI'
      goto error
    end


/***************  SISTEMA OFIPLAN *******************/
/*
    if exists (
      select * from deleted t1, OFIPLAN..TTASIE_CTBL t2
      where
        t2.CO_CNTA_CTBL = t1.CO_CNTA_EMPR
    )
    begin
      select @errno  = 30001,
             @errmsg = 'No Se puede Borrar CUENTA CONTABLE porque EXISTE EN OFIPLAN..TTASIE_CTBL.'
      goto error
    end
*/
/***************  SISTEMA OFITESO *******************/

    if exists (
      select * from deleted t1, OFITESO..TDTIPO_OPER t2
      where
        t2.CO_EMPR = t1.CO_EMPR AND
        t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB
    )
    begin
      select @errno  = 30001,
             @errmsg = 'No Se puede Borrar CODIGO OPERACION porque EXISTE EN OFITESO..TDTIPO_OPER.'
      goto error
    end

    return
error:
    raiserror @errno @errmsg
    rollback transaction
end

/***************************  FIN  *******************************/
GO

CREATE Trigger [dbo].[TU_TMOPRC_CNTB_U01] On [dbo].[TMOPRC_CNTB]
For Update
/*---------------------------------------------------------*/
/*---- Empresa              : OFISIS S.A.              ----*/
/*---- Cliente              : OFISIS S.A.              ----*/
/*---- Sistema              : OFICONT                  ----*/
/*---- M›dulo               : ADMINISTRACION           ----*/
/*---- Programa             : CODIGOS DE OPERACION     ----*/
/*---- Script               : TRIGGER_TMOPRC_CNTB.SQL  ----*/
/*---- Nombre TR            : TU_TMOPRC_CNTB_U01       ----*/
/*---- Desarrollado por     : Franco Gamboni Koifman   ----*/
/*---- Fecha Creaci›n       : 24/05/2004               ----*/
/*---- Base de Datos        : SQL                      ----*/
/*---- Versi›n              : 8.0                      ----*/
/*---- Invoca a SP          :                          ----*/
/*---------------------------------------------------------*/
/*---- Modificado 1 por     :                          ----*/
/*---- Fecha Modificaci›n   :                          ----*/    
/*---- Detalle Modificacicn :                          ----*/  
/*---------------------------------------------------------*/
/*---- Comentarios: Actualiza datos en tabla tesoreria ----*/
/*---------------------------------------------------------*/
/*---- Se ejecuta con el update de la Tabla            ----*/
/*---------------------------------------------------------*/
As
If Update(TI_SITU)
Begin
  Declare  @errno   int,
           @errmsg  varchar(255)
/*Begin*/

/**************** OFITESO *******************/
    if exists (
      select * from inserted t1, OFITESO..TDTIPO_OPER t2
      where
        t2.CO_EMPR = t1.CO_EMPR AND
        t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB
    )
    begin
      select @errno  = 30001,
             @errmsg = 'No se puede cambiar estado de CODIGO OPERACION porque EXISTE EN OFITESO..TDTIPO_OPER'
      goto error
    end

/**************** OFILOGI *******************/
    if exists (
      select * from inserted t1, OFILOGI..TTTIOP_LOGI t2
      where
        t2.CO_EMPR = t1.CO_EMPR AND
        t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB
    )
    begin
      select @errno  = 30001,
             @errmsg = 'No se puede cambiar estado de CODIGO OPERACION porque EXISTE EN OFILOGI..TTTIOP_LOGI'
      goto error
    end

    return
error:
    raiserror @errno @errmsg
    rollback transaction
end

/*------------------- Fin de Trigger ----------------------*/
GO

CREATE Trigger [dbo].[tU_TMOPRC_CNTB_U10] On [dbo].[TMOPRC_CNTB] 
For UPDATE
As
Begin
  Declare
  -- Variables del Cursor
  @CSCO_EMPR varchar(2), 
  @CSCO_OPRC_CNTB varchar(3),
  @CSDE_OPRC_CNTB varchar(50),
  @CSST_MODI_FLAG varchar(1),
  @CSTI_SITU varchar(3),
  @CSCO_USUA_CREA TD_VC_008_USUA,
  @CDFE_USUA_CREA TD_DT_001,
  @CSCO_USUA_MODI TD_VC_008_USUA,
  @CDFE_USUA_MODI TD_DT_001,
  -- Variables del Select
  @VSCO_EMPR varchar(2), 
  @VSCO_OPRC_CNTB varchar(3),
  @VSDE_OPRC_CNTB varchar(50),
  @VSST_MODI_FLAG varchar(1),
  @VSTI_SITU varchar(3),
  @VSCO_USUA_CREA TD_VC_008_USUA,
  @VDFE_USUA_CREA TD_DT_001,
  @VSCO_USUA_MODI TD_VC_008_USUA,
  @VDFE_USUA_MODI TD_DT_001


  Declare CT_TMOPRC_CNTB_U10_1 Cursor
  For
  Select CO_EMPR, CO_OPRC_CNTB, DE_OPRC, ST_MODI_FLAG, TI_SITU, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI
  From    Inserted

  Open  CT_TMOPRC_CNTB_U10_1
  Fetch CT_TMOPRC_CNTB_U10_1
  Into  @CSCO_EMPR, @CSCO_OPRC_CNTB, @CSDE_OPRC_CNTB, @CSST_MODI_FLAG, @CSTI_SITU, @CSCO_USUA_CREA, @CDFE_USUA_CREA,
        @CSCO_USUA_MODI, @CDFE_USUA_MODI

  While @@Fetch_Status = 0
  Begin
    If @@Fetch_Status < 0
    Begin
      Close CT_TMOPRC_CNTB_U10_1
      Deallocate CT_TMOPRC_CNTB_U10_1
    End
/*
    Update TMOPRC_CNTB
    Set    CO_USUA_MODI = SubString(SYSTEM_USER, 1, 8),
           FE_USUA_MODI = Getdate()
    Where  1 = 1
    And TMOPRC_CNTB.CO_EMPR = @CSCO_EMPR And TMOPRC_CNTB.CO_OPRC_CNTB = @CSCO_OPRC_CNTB 
*/
    -- Extrae Datos Origen
    Select @VSCO_EMPR = CO_EMPR, @VSCO_OPRC_CNTB = CO_OPRC_CNTB, @VSDE_OPRC_CNTB = DE_OPRC,
	   @VSST_MODI_FLAG = ST_MODI_FLAG, @VSTI_SITU = TI_SITU, @VSCO_USUA_CREA = CO_USUA_CREA,
	   @VDFE_USUA_CREA = FE_USUA_CREA, @VSCO_USUA_MODI = CO_USUA_MODI, @VDFE_USUA_MODI = FE_USUA_MODI
    From Deleted
    Where CO_EMPR = @CSCO_EMPR
    And CO_OPRC_CNTB = @CSCO_OPRC_CNTB

    -- Inserto Datos Origen y Destino
    Insert into TMOPRC_AUDI(
    CO_EMPR_ORIG, CO_OPRC_ORIG, DE_OPRC_ORIG, ST_MODI_ORIG, TI_SITU_ORIG, CO_USCR_ORIG, FE_USCR_ORIG, CO_USMO_ORIG, FE_USMO_ORIG,
    CO_EMPR_DEST, CO_OPRC_DEST, DE_OPRC_DEST, ST_MODI_DEST, TI_SITU_DEST, CO_USCR_DEST, FE_USCR_DEST, CO_USMO_DEST, FE_USMO_DEST)
    Values(@VSCO_EMPR, @VSCO_OPRC_CNTB, @VSDE_OPRC_CNTB, @VSST_MODI_FLAG, @VSTI_SITU, @VSCO_USUA_CREA, @VDFE_USUA_CREA, @VSCO_USUA_MODI,
    @VDFE_USUA_MODI, @CSCO_EMPR, @CSCO_OPRC_CNTB, @CSDE_OPRC_CNTB, @CSST_MODI_FLAG, @CSTI_SITU, @CSCO_USUA_CREA, @CDFE_USUA_CREA,
    @CSCO_USUA_MODI, @CDFE_USUA_MODI)

  Fetch CT_TMOPRC_CNTB_U10_1
  Into  @CSCO_EMPR, @CSCO_OPRC_CNTB, @CSDE_OPRC_CNTB, @CSST_MODI_FLAG, @CSTI_SITU, @CSCO_USUA_CREA, @CDFE_USUA_CREA,
        @CSCO_USUA_MODI, @CDFE_USUA_MODI
  End
  Close CT_TMOPRC_CNTB_U10_1
  Deallocate CT_TMOPRC_CNTB_U10_1
End

/********** Fin Trigger **********/
/*********************************/
GO

ALTER TABLE [dbo].[TMOPRC_CNTB] ADD CONSTRAINT [CK__TMOPRC_CN__ST_MO__367C1819] CHECK (([ST_MODI_FLAG]='N' OR [ST_MODI_FLAG]='S'))
GO
ALTER TABLE [dbo].[TMOPRC_CNTB] ADD CONSTRAINT [TMOPRC_CNT_17586293081] PRIMARY KEY CLUSTERED  ([CO_EMPR], [CO_OPRC_CNTB]) ON [PRIMARY]
GO
